Multicast transmissions, such as according to protocol independent multicast (PIM), may be executed over a virtual local area network (LAN). For example, multicast distribution trees (MDTs) may be built in a computer network that allow content (e.g., traffic) from source devices to be replicated by routers within the MDT in order to reach a plurality of receivers. An example multicast transmission may be an internet protocol television (IPTV) channel being multicast from one source server to a plurality of receivers (e.g., users' set-top boxes or computers).
In PIM Sparse-Mode (PIM-SM), the MDT is built toward a root device (rendezvous point or “RP”) such that the tree is not specific to any source, i.e., is a shared tree. In PIM-SM, a last-hop router at the end of the shared tree joins each and every learned source of the shared tree, and creates a last step source tree to the receivers for each source. From the receivers' perspective (e.g., client/customer perspective), a receiver application joins the multicast group (*,G), and not the source, and simply receives the traffic sent to it on the source tree from the last-hop router for the particular joined group. One problem with Sparse-Mode is that it is complex to implement, particularly at the last-hop routers, having to build a generic shared tree to an RP, then learn all of the sources, then build source trees to the receivers, and finally switch traffic from shared trees to source trees.
An alternative to Sparse-Mode is PIM Source-Specific Multicast (PIM-SSM), in which source trees are created from the receiver directly to each source. In PIM-SSM, the receivers must learn of the sources in advance, and may then join the source and group (S,G) to receive content from the source on the corresponding source tree. One problem with Source-Specific Multicast, however, is how the receiver application learns about the specific sources, and how to maintain a redundancy relationship in the event the learned source fails. That is, since in PIM-SSM each tree is for a different source, and each traffic stream depends on the S,G pair, then different sources result in different streams. As such, to provide redundancy, two sources would be required, resulting in two source trees, two traffic streams for the content, and the receivers' having to join the two streams. The application to parse the two streams appropriately is complex, and the two (or more) streams in the network requires twice (or more) bandwidth all the way from the sources to the receivers (e.g., set-top boxes, etc.).